Entities typically generate and use data that is important in some way to their operations. This data can include, for example, business data, financial data, and personnel data. Accordingly, entities typically back up their important data so as to create a backup that can later be used in a data restore process if necessary.
The data protection systems used to back up data may be able to support relatively large backup files, whose size may be measured in 100s of GB. These backup files are often read/written in a sequential manner. Within the context of a particular backup file, input and output (I/O) operations are considered to take the form of a stream, due to the sequential manner in which the I/O operations are performed.
In order to support the use of sequential I/O operations, backup systems may allocate resources on a per-backup stream basis, and the I/Os for each backup stream are processed serially by the backup system in order to maintain read/write consistency of the stream and associated file. While such serial processing has proven to be effective in certain circumstances, there are also circumstances where reliance on serial processing can be problematic.
By way of example, as data protection (DP) methods and systems evolve to support an expanding variety of use cases, a need has arisen for implementation of not only serial I/O operations, but also random I/O operations, in connection with data backup and restore processes. However, typical DP methods and systems have failed to adequately address this emerging need.
Thus, what is needed are systems and methods to address and improve performance of excessive file/dedupe metadata access. It would also be useful to be able to maintain read/write consistency in a backup system, while also improving the performance of the system without the need to make changes in the client application behavior. Finally, it would be useful to be able to improve the random I/O performance without adversely affecting the performance of sequential I/O.